package com.ruoyi.lvlian.domain;

import java.util.Date;
import java.util.List;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * 过磅单对象 lv_weigh
 *
 * @author liyuxi
 * @date 2025-06-06
 */
@Data
@ToString
@ApiModel(value = "过磅单对象", description = "过磅单对象")
public class Weigh   {
    private static final long serialVersionUID = 1L;


    private String id;
    @NotBlank(message = "标题不能为空")
    @ApiModelProperty(value = "标题")
    @Excel(name = "标题")
    private String title;

    /**
     * 供应商
     */
    @NotBlank(message = "供应商不能为空")
    @ApiModelProperty(value = "供应商")
    @Excel(name = "供应商")
    private String sellerName;

    /**
     * 采购商
     */
    @ApiModelProperty(value = "采购商")
    @Excel(name = "采购商")
    private String buyerName;


    @NotBlank(message = "过磅单号不能为空")
    @ApiModelProperty(value = "过磅单号")
    @Excel(name = "过磅单号")
    private String weighNum;

    /**
     * 磅房号
     */
    @ApiModelProperty(value = "磅房号")
    @Excel(name = "磅房号")
    private String weighRoomNum;


    @NotBlank(message = "车牌号码不能为空")
    @ApiModelProperty(value = "车牌号码")
    @Excel(name = "车牌号码")
    private String plateNo;

    /**
     * 车型
     */
    @ApiModelProperty(value = "车型")
    @Excel(name = "车型")
    private String vehicleModel;

    /**
     * 货物来源
     */
    @ApiModelProperty(value = "货物来源")
    @Excel(name = "货物来源")
    private String goodsSource;


    @NotBlank(message = "货物名称不能为空")
    @ApiModelProperty(value = "货物名称")
    @Excel(name = "货物名称")
    private String goodsName;

    /**
     * 监控点位
     */
    @ApiModelProperty(value = "监控点位")
    @Excel(name = "监控点位")
    private String monitorLocation;


    @ApiModelProperty(value = "毛重")
    @Excel(name = "毛重")
    private double grossWeight;

    /**
     * 皮重
     */
    @ApiModelProperty(value = "皮重")
    @Excel(name = "皮重")
    private double tareWeight;

    /**
     * 净重
     */
    @ApiModelProperty(value = "磅台名称")
    @Excel(name = "净重")
    private double netWeight;


    @NotBlank(message = "交货人不能为空")
    @ApiModelProperty(value = "交货人")
    @Excel(name = "交货人")
    private String businessUserName;


    @NotBlank(message = "交货人联系电话不能为空")
    @ApiModelProperty(value = "交货人联系电话")
    @Excel(name = "交货人联系电话")
    private String businessUserPhone;

    /**
     * 交货人身份证号
     */
    @ApiModelProperty(value = "磅台名称")
    @Excel(name = "交货人身份证号")
    private String businessUserIdCard;

    /**
     * 称毛时间
     */
    @ApiModelProperty(
            value = "称毛时间",
            example = "2025-05-01",  // 设置示例时间格式
            notes = "格式：yyyy-MM-dd"  // 说明时间格式
    )
    @Excel(name = "称毛时间")
    private String grossDate;

    /**
     * 称皮时间
     */
    @Excel(name = "称皮时间")
    @ApiModelProperty(
            value = "称皮时间",
            example = "2025-05-01",  // 设置示例时间格式
            notes = "格式：yyyy-MM-dd"  // 说明时间格式
    )
    private String tareDate;

    /**
     * 司磅员
     */
    @ApiModelProperty(value = "司磅员")
    @Excel(name = "司磅员")
    private String weighman;


    @NotBlank(message = "驾驶员不能为空")
    @ApiModelProperty(value = "驾驶员")
    @Excel(name = "驾驶员")
    private String driverName;

    /**
     * 驾驶员电话
     */
    @ApiModelProperty(value = "驾驶员电话")
    @Excel(name = "驾驶员电话")
    private String driverPhone;

    /**
     * 过磅单类型
     */
    @ApiModelProperty(value = "过磅单类型")
    @Excel(name = "过磅单类型")
    private String category;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    @Excel(name = "录入人")
    private String createUser;

    /**
     * 录入日期
     */
    @Excel(name = "录入日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(
            value = "录入日期",
            example = "2025-05-01",  // 设置示例时间格式
            notes = "格式：yyyy-MM-dd"  // 说明时间格式
    )
    private String createDate;

    /**
     * 过磅单图片
     */
    @ApiModelProperty(value = "过磅单图片")
    @Excel(name = "过磅单图片")
    private String weighNumImg;


    @ExcelProperty("所属公司编码")
    private String orgCode;

    private List<String> orgCodes;
}
